perm filename FUDGE2.JMS[S,DOC]2 blob sn#533108 filedate 1980-08-31 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Source and disclaimer
C00003 00003	Overview
C00006 00004	Command format
C00011 ENDMK
CāŠ—;
Source and disclaimer

This documentation was typed in by JMS on 13 Feb 1980.  The source was
decSystem10 assembly language handbook, third edition (April 1973), pp.
943-950.

The DEC documentation lists error messages and gives examples, neither of
which are included here.

Until I have time to try running FUDGE2 here at SAIL, no guarantee is made
about the accuracy of the information in this file. -- jms
Overview

The FUDGE2 program is used to update files containing one or more
relocatable binary modules and to manipulate the individual modules within
these files.  Relocatable binary modules are output by MACRO-10,
FORTRAN-10, ALGOL, [SAIL], and BLISS-10.  A module can be a complete
program or only a set of subroutines.  One reason for collecting a group
of relocatable modules into one file is to enable LINK-10 or LOADER to use
the file as a library.  Three files are used in the updating process:

1.  A master file containing the file to be updated.

2.  A transaction file containing the modules to be used when updating.

3.  An output file containing the updated file.

All three files can be on the same device if the device is DSK.  The two
input files can be on the same DECtape.

The desired function of FUDGE2 is specified by a command code at the end
of the command string.  Only one command code can be specified in each
command string.  Switches can also be used to position a magnetic tape and
to zero a DECtape directory (zeroing a DECtape directory is equivalent to
deleting all the files on the tape).

WARNING

For execution to occur, the command string must be terminated with an
ALTmode, represented in this manual by a dolllar sign ($), instead of the
usual carriage return - line feed.

Command format

.R FUDGE2 <crlf>

*outputfile=masterfile<modules>,transactionfle<modules>(command)$
  or
*outputfile=masterfile<modules>,transactionfle<modules>/command$

master dev:	the device containing the file to be updated.  If omitted
		the default is DSK.  

.ext		if omitted, .REL is assumed, unless the /L switch appears
		in the command string, in which case the output extensi
		is .LST

<modules>       names of modules (on DSK or DTA only) to be used in the
		updating process.  They are grouped within angle brackets
		in the same order as they appear in the file and are
		separated by commas.  When manipulating all the modules
		within a file, only the filename need be specified.
		Module names cannot appear in the output file.

(command)       code for the function to be performed.  This code can be
		either preceded by a slash or enclosed in parentheses and
		must appear at the end of the command string.  Each
		command results in the updated file being output to the
		output device.  The command codes are as follows:

	A	append the specified modules in the transaction file(s)
		to the master file.

	C	compress the master file by deleting local symbols.  These
		symbols are included in relocatable binary modules primarily 
		because of their usefulness in debugging procedures.  Large
		libraries of debugged routines frequently have the local
		symbols deleted in order to save disk space and reduce the amount
		of i/o required during the loading process.

	D	delete the specified modules from the master file.

	E	extract the specified files and/or modules from the input
		files.  The entire file is extracted if module names are
		not specified.

	H	type the commands and switches available (help)

	I	insert modules from the specified transaction files into the
		master file.  The modules from the transaction files are inserted
		immediately before the specified modules in the master file.
		A comma is used to separate the transaction files.

	L	list the names and lengths of all relocatable modules within a
		file.  The length is in one of two forms:
		
			low segment break, high segment break	or
			program break, absolute break

		The length of FORTRAN modules is not output.

		The default filename for spooled output is the name of the
		master file.

	R	Replace the specified modules in the master file with
		the specified modules in the transaction file.  The
		number of replacing modules must be the same as the number
		of modules to replace.

	S	List all the enetry points within a module.  These entry
		points are listed across the page.  The default filename
		for spooled output is the name of the master file.

	X	Write index blocks into a library file on DECtape or
		disk.  Indexes cannot be written on magnetic tape.
		Index blocks are used in a direct access library search
		(see LOADER documentation).   This command implies a 
		C command.